package mybatis.mapping;

import java.util.Arrays;

/**
 * SQL命令类型
 *
 * @author richie696
 * @version 1.0
 * @since 2020/11/07
 */
public enum SqlCommandType {
    /**
     * 未知类型
     */
    UNKNOWN(""),
    /**
     * 插入类型
     */
    INSERT("insert"),
    /**
     * 更新类型
     */
    UPDATE("update"),
    /**
     * 删除类型
     */
    DELETE("delete"),
    /**
     * 选择类型
     */
    SELECT("select");

    private final String name;

    SqlCommandType(String name) {
        this.name = name;
    }

    public static SqlCommandType nameOf(String name) {
        return Arrays.stream(values()).filter(o -> o.name.equals(name)).findFirst().orElse(UNKNOWN);
    }

    public boolean isSqlCommandType() {
        return this != UNKNOWN;
    }

    public boolean isInsert() {
        return this == INSERT;
    }
}
